package collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

/**
 * 集合转为数组
 */
public class CollectionToArrayDemo {
    public static <list> void main(String[] args) {
        Collection<String> c=new ArrayList<>();
        c.add("one");
        c.add("two");
        c.add("three");
        c.add("four");
        c.add("five");
        System.out.println("集合："+c);
        /*
         * 集合的toArray方法要求传入一个数组，如果该数组可用
         * （长度>=集合size）则将集合元素全部存入该数组后再进该数组返回
         * 如果数组不可用（长度<集合size）则会自动创建一个与等长的数组并将元素存入该数组后将其返回
         */
        //String[] array=c.toArray(new String[c.size()]);
        String[] array=c.toArray(new String[1]);
        System.out.println("数组："+ Arrays.toString(array));
        /*
        数组转集合
         */
        String[] arr={"one","two","three","four","five"};
        System.out.println("数组："+Arrays.toString(arr));
        /*
        使用list可以使数组转换成一个集合
         */
        List<String> list= Arrays.asList(arr);
        System.out.println("list："+list);
        //从数组转换而来的list集合是不能增删元素的
        // list.add("six");----运行错误
        //List<String> list2= new ArrayList<>();
        //list2.addAll(list);
        //下面这句等同于上面俩句，新建一个集合的同时导入一个集合,对于新集合来说，是可以进行增删等操作的
        List<String> list2=new ArrayList<>(list);
        System.out.println("list2："+list2);
        list2.add("six");//此时可以进行增操作
        System.out.println("list2："+list2);
    }
}
